import { http } from '@/utils/http'

const AUTH_BASE_URL = '/core/PDAControl'
const CheckStockApi = {
  // 获取盘库单列表
  getCheckStockList(params: CheckStockParams) {
    const query = encodeURIComponent(JSON.stringify(params))
    return http({
      url: `${AUTH_BASE_URL}/getPDAStockCheckList?object=${query}`,
      method: 'GET',
    })
  },
  // 删除已扫码数据
  deleteCheckStock(id: number) {
    return http({
      url: `${AUTH_BASE_URL}/delStockCheckBasketDetail`,
      method: 'POST',
      data: {
        id,
      },
    })
  },
  // 扫码新增或更新盘库信息
  saveOrUpdateCheckStock(params: CheckStockSubmitForm) {
    return http({
      url: `${AUTH_BASE_URL}/saveOrUpdateCheckBasketDetail`,
      method: 'POST',
      data: params,
    })
  },
  // 提交盘库单
  submitCheckStock(id: number) {
    return http({
      url: `${AUTH_BASE_URL}/submitStockCheck`,
      method: 'POST',
      data: { id },
    })
  },
  //
  getBasketDetailByCheckCode(checkCode: string) {
    return http({
      url: `${AUTH_BASE_URL}/getBasketDetailByCheckCode?checkCode=${checkCode}`,
      method: 'GET',
    })
  },
}

export default CheckStockApi

export interface CheckStockParams extends QueryParams {
  code?: string
  statusList?: number[]
}
export interface StockCheck {
  // 检查日期（可选）
  checkDate?: string
  // 检查数量（可选）
  checkNum?: number
  // 代码（可选）
  code?: string
  // 完成标志（可选）
  completeFlag?: boolean
  // 创建人姓名（可选）
  createName?: string
  // 创建时间（可选）
  createTime?: string
  // 创建用户ID（可选）
  createUser?: number
  // 记录ID（可选）
  id?: number
  // 是否删除标志（可选）
  isDelete?: number
  // 修改人姓名（可选）
  modifyName?: string
  // 修改时间（可选）
  modifyTime?: string
  // 修改用户ID（可选）
  modifyUser?: number
  // 名称（可选）
  name?: string
  // 页码（可选）
  pageNum?: number
  // 每页大小（可选）
  pageSize?: number
  // 产品代码（可选）
  productCode?: string
  // 备注（可选）
  remark?: string
  // 状态（可选）
  status?: number
  // 库存检查详情列表（可选）
  stockCheckDetailList?: StockCheckDetail[]
  // 总库存数量（可选）
  stockNum?: number
  // 时间范围列表（可选）
  timeScopes?: string[]
}

export interface StockCheckDetail {
  // 检查数量（可选）
  checkNum?: number
  // 代码（可选）
  code?: string
  // 创建人姓名（可选）
  createName?: string
  // 创建时间（可选）
  createTime?: string
  // 创建用户ID（可选）
  createUser?: number
  // 记录ID（可选）
  id?: number
  // 是否删除标志（可选）
  isDelete?: number
  // 修改人姓名（可选）
  modifyName?: string
  // 修改时间（可选）
  modifyTime?: string
  // 修改用户ID（可选）
  modifyUser?: number
  // 父代码（可选）
  parentCode?: string
  // 产品代码（可选）
  productCode?: string
  // 产品名称（可选）
  productName?: string
  // 备注（可选）
  remark?: string
  // 状态（可选）
  status?: number
  // 库存数量（可选）
  stockNum?: number
  unit?: string
}

// 盘库提交表单
export interface CheckStockSubmitForm {
  basket: string // 筐码
  batch?: string // 批次
  checkCode: string // 盘库单号
  checkNum: number // 盘库数量
  code?: string // 编码
  id?: number // 记录ID
  location: string // 库位
  parentCode?: string // 父代码
  productCode: string // 产品代码
  productName: string // 产品名称
  remark?: string // 备注
  status?: number // 状态
  stockNum?: number // 库存数量
}
